package com.swsc.xapp.enums;

import com.swsc.xapp.utils.RegisterFucUtils;
import com.swsc.xapp.yhjsBirdge.BridgeWebView;

import static com.swsc.xapp.enums.NJSFConsts.*;

/**
 * @Author chencl
 * @Date 2022/7/26 11:49
 * @Version 1.0
 * @Description Native JavaScript Function Enums
 */
public enum NJSFEnums {
    /** 网络连接状态 */
    NETWORK_CONNECTION_STATE(CODE_NETWORK_CONNECTION_STATE, JKEY_NETWORK_CONNECTION_STATE, ""),
    /** 用户信息缓存写 */
    NFS_USERINFO(CODE_NFS_USERINFO, JKEY_NFS_USERINFO, "NFS_USERINFO.json"),
    /** 用户信息缓存读 */
    NFR_USERINFO(CODE_NFR_USERINFO, JKEY_NFR_USERINFO, "NFS_USERINFO.json"),
    /** 打开相机 */
    OPEN_CAMERA(CODE_OPEN_CAMERA, JKEY_OPEN_CAMERA, ""),
    /** 缓存数据 */
    NFS_SYNC_OFFLINE(CODE_NFS_SYNC_OFFLINE, JKEY_NFS_SYNC_OFFLINE, ""),
    /** 上传离线消缺数据 */
    NFS_SYNC_UPLOAD(CODE_NFS_SYNC_UPLOAD, JKEY_NFS_SYNC_UPLOAD, ""),
    /** base url缓存写 */
    NFS_BASE_URL(CODE_NFS_BASE_URL, JKEY_NFS_BASE_URL, "NFS_BASE_URL.json"),
    /** base url缓存读 */
    NFR_BASE_URL(CODE_NFR_BASE_URL, JKEY_NFR_BASE_URL, "NFS_BASE_URL.json"),
    ;
    NJSFEnums(int code, String jkey, String extra) {
        this.code = code;
        this.jkey = jkey;
        this.extra = extra;
    }

    public int code;
    private String jkey;
    private String extra;

    public int getCode() {
        return code;
    }

    public String getJkey() {
        return jkey;
    }

    public String getExtra() {
        return extra;
    }

    public static void registerJsFunctions(RegisterFucUtils mRegisterFucUtils, BridgeWebView mVebView){
        for(NJSFEnums e : NJSFEnums.values()){
            mRegisterFucUtils.registerJSFunction(mVebView, e.getJkey(), e.getCode());
        }
    }
}
